/*
 * @Author: 吴世扬 18368095041@163.com
 * @Date: 2024-09-05 09:53:20
 * @LastEditors: 吴世扬 18368095041@163.com
 * @LastEditTime: 2024-09-12 10:30:01
 * @FilePath: /react18-vite-admin/src/service/biz/useLogin.ts
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import { useRef, useState } from 'react';

import { login as loginRequest, LoginParam } from '@/api/login';

export { LoginParam };

export const useLogin = () => {
    const [loginLoading, setLoginLoading] = useState(false);
    const tokenRef = useRef('');
    const login = (param: LoginParam) => {
        if (loginLoading) return;
        setLoginLoading(true);
        return loginRequest(JSON.parse(JSON.stringify(param)))
            .then((res) => {
                tokenRef.current = res.data;
                return res;
            })
            .finally(() => {
                setLoginLoading(false);
            });
    };

    return {
        loginLoading,
        tokenRef,
        login
    };
};
